#ifndef SUPER_MEGA_POINT_H_
#define SUPER_MEGA_POINT_H_

namespace Samsung
{
	class Point
	{
	public:
		Point()
			: first_(0), second_(0)
		{}
		Point(int x, int y)
			: first_(x), second_(y)
		{}
		Point(const Point& p)
			: first_(p.first_), second_(p.second_)
		{}
		bool operator ==(const Point& p) const
		{
			return (p.first_ == first_) && (p.second_ == second_);
		}
		bool operator <(const Point& p) const
		{
			if (p.first_ == first_)
			{
				return p.second_ > second_;
			}
			return (p.first_ > first_) ;
		}

		Point operator + (const Point& p)
		{
			Point newPoint(first_, second_);
			newPoint.first_ += p.first_;
			newPoint.second_ += p.second_;
			return newPoint;
		}
		Point operator - (const Point& p)
		{
			Point newPoint(first_, second_);
			newPoint.first_ -= p.first_;
			newPoint.second_ -= p.second_;
			return newPoint;
		}
		Point& const operator=(const Point& p)
		{
			this->first_ = p.first_;
			this->second_ = p.second_;
			return *this;
		}
	public:
		int first_;
		int second_;
	};
}

#endif